# /rectangletiling from heapq import * def f(w, h, a): n = len(a); q = [(-w, h)]; z = 0 while q: w, h = heappop(q); ok = 0; w = -w for i in range(n-1, -1, -1): u = min(a[i], (h>>i)*(w>>i)) if not u: continue a[i] -= u; z += u; ok = 1; r, m = divmod(u, w>>i) if h-(r+(m>0)<0)<>i<>i<